package action;

import controller.Action;
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import model.Curso;
import model.Professor;

public class PesquisarProfessorPorCursoAction extends Action{

    @Override
    public void execute(HttpServletRequest request, HttpServletResponse response) throws ServletException {
        String acao = request.getParameter("acao");
        try {
            request.setAttribute("cursos", Curso.obterCursos());
            request.setAttribute("acao", acao);
            
            if (!acao.equals("prepararOperacao")) {
                int codCurso = Integer.parseInt(request.getParameter("optCurso"));
                List<Professor> professores = Professor.obterProfessores();
                List<Professor> professoresExcluir = new ArrayList<Professor>();
                
                Iterator professorIterator = professores.iterator();
                while (professorIterator.hasNext()){
                    Professor professor = (Professor) professorIterator.next();
                    if (professor.getCurso().getCodCurso() != codCurso) {
                        professoresExcluir.add(professor);
                    }
                }
                
                professores.removeAll(professoresExcluir);
                
                request.setAttribute("professores", professores);
                request.setAttribute("codCurso", codCurso);
            }

            RequestDispatcher janela = request.getRequestDispatcher("/PesquisarProfessorPorCurso.jsp");
            janela.forward(request, response);
        } catch (ServletException e) {
            throw e;
        } catch (IOException e) {
            throw new ServletException(e);
        } catch (SQLException e) {
            throw new ServletException(e);
        } catch (ClassNotFoundException e) {
            throw new ServletException(e);
        }
    }

    @Override
    public void prepararOperacao(HttpServletRequest request, HttpServletResponse response) throws ServletException {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public void confirmarOperacao(HttpServletRequest request, HttpServletResponse response) throws ServletException {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
    
    
}
